home *** CD-ROM | disk | FTP | other *** search
/ Item MB Quick & Easy 2.0 / Item MB Quick & Easy 2.0.iso / mbfacad / eaitstd1.lsp < prev    next >
Text File  |  1998-03-15  |  42KB  |  1,374 lines

  1. ;DXF-Daten aus einem Element lesen
  2. (defun EAITdxf (AIT_co AIT_cl)
  3.    (cdr (assoc AIT_co AIT_cl))
  4. );defun EAITdxf
  5.  
  6. ;SETUP laden und ausfⁿhren
  7. (load (strcat EAITpfn "EAITset"))
  8. (EAITset)
  9.  
  10. (defun EAITdim (AIT_x)
  11.    ;Variablen OK?
  12.    (if (not EAITpm)(setq EAITpm "1"))
  13.    (if (not EAITds)(setq EAITds "2D"))
  14.    (if (not AIT_x) (setq AIT_x EAITds))
  15.  
  16.    ;umschalten (2D mit BKS-Prüfung)
  17.    (cond ((= AIT_x "3D")(if (not EAITzst)(load (strcat EAITpfn "EAITstd3")))
  18.             (setq EAITds "3D")
  19.             (setq EAITuicon (getvar "UCSICON")) 
  20.          ;BKS-Symbol einschalten
  21.              (setvar "UCSICON" 1)
  22.             ;(command EAITbsy EAITbke)
  23.             ;(command EAITbsy EAITbei)
  24.      )
  25.      (T             (if (not EAITkoor)(load (strcat EAITpfn "EAITstd2")))
  26.             (if (NOT (numberp (EAITkoor)))(princ))
  27.              (setvar "UCSICON" EAITuicon)
  28.             (setq EAITds "2D")
  29.      )
  30.    )
  31.  
  32.    ;SCREEN
  33.    (menucmd (strcat "s=" EAITds "-screen"))
  34.    (menucmd "s=*")
  35.  
  36.    ;Popup
  37.    (load (strcat EAITpfn "EAIT" EAITds EAITpm))
  38.    (menucmd (strcat "p1=" EAITds "-system"))
  39.    (princ)
  40. ); defun EAITdim
  41.  
  42.  
  43. ;Merker  AIT_st -> S ichern L esen M anuell   AIT_me -> Menü oder nil
  44.  
  45. (defun EAITmkr (AIT_st AIT_me / AIT-bl AIT-dia AIT-e  AIT-e1 AIT-e2 AIT-e3 AIT-e4
  46.                 AIT-e5 AIT-e6 AIT-e7 AIT-e8 AIT-e9 MER DAT1) 
  47.  
  48.  ;Papierbereichs-Faktor:
  49.  (if (= EAITms 0.0)(setq EAITms 1.0))
  50.   (setq AIT-dia (getvar "ATTDIA"))
  51.   (setvar "ATTDIA" 0)
  52.   (setq AIT-bl (ssget "X" '((0 . "INSERT")(2 . "EAITMERK"))))
  53.  
  54.   (if (not AIT-bl)    
  55.       (progn          ;falls keiner da...hier Anfangswerte hinterlegen
  56.  
  57.        (command EAITege (strcat EAITpfm "EAITmerk") '(0 0) "" "" """" "" "" "" "" "" "" "" "")
  58.  
  59.        (setq MER (tblsearch "BLOCK" "EAITMERK")
  60.          DAT1 (entget (EAITDXF -2 MER))
  61.        )
  62.        (EAITmkum DAT1)
  63.        (setq AIT-bl (ssget "X" '((0 . "INSERT")(2 . "EAITMERK"))) )
  64.       );progn if T
  65.        
  66.  
  67.       (progn      ;wenn alter Block ohne Anfragen vorhanden
  68.     (setq MER (tblsearch "BLOCK" "EAITmerk")        
  69.           DAT1 (entget (EAITDXF -2 MER))       
  70.     )       
  71.     (if (= (EAITDXF 3 DAT1) "")       
  72.       (EAITmkum DAT1)       
  73.     );if       
  74.       );progn if nil
  75.  
  76. );if (not AIT-bl)
  77.  
  78.   ;nur Merker-Block der Ursprungszeichnung bleibt, falls durch einfügen mehrere vorhanden
  79.   (while (> (sslength AIT-bl) 1)
  80.      (entdel (ssname AIT-bl 0))
  81.      (ssdel  (ssname AIT-bl 0) AIT-bl)
  82.   )
  83.  
  84. ;***************Felder auslesen
  85.  
  86.        (setq DAT1 (entget (entnext (ssname AIT-bl 0))))
  87.        (while (= (EAITDXF 0 DAT1) "ATTRIB")
  88.                (cond ((OR (= (EAITDXF 2 DAT1) "EAITHAUPTMENUE")(= (EAITDXF 2 DAT1) "EAITHAUPTMENUE"))
  89.                    (setq AIT-e1 (EAITdxf -1 DAT1))
  90.                  )
  91.                  ((OR (= (EAITDXF 2 DAT1) "EAITMASSTABSFAKTOR")(= (EAITDXF 2 DAT1) "EAITMASSTABSFAKTOR"))
  92.                    (setq AIT-e2 (EAITdxf -1 DAT1))
  93.                  )
  94.                  ((OR (= (EAITDXF 2 DAT1) "EAITLETZTE-POSITION")(= (EAITDXF 2 DAT1) "EAITLETZTE-POSITION"))
  95.                    (setq AIT-e3 (EAITdxf -1 DAT1))
  96.                  )
  97.                  ((OR (= (EAITDXF 2 DAT1) "EAITBEM_NACHKOMMA")(= (EAITDXF 2 DAT1) "EAITBE_NACHKOMMA"))
  98.                    (setq AIT-e4 (EAITdxf -1 DAT1))
  99.                  )
  100.                  ((OR (= (EAITDXF 2 DAT1) "EAITPOSORT")(= (EAITDXF 2 DAT1) "EAITPOSORT"))
  101.                    (setq AIT-e5 (EAITdxf -1 DAT1))
  102.                  )
  103.                  ((OR (= (EAITDXF 2 DAT1) "EAITML3")(= (EAITDXF 2 DAT1) "EAITML3"))
  104.                    (setq AIT-e6 (EAITdxf -1 DAT1))
  105.                  )
  106.                  ((OR (= (EAITDXF 2 DAT1) "EAITMERKER-7")(= (EAITDXF 2 DAT1) "EAITMERKER-7"))
  107.                    (setq AIT-e7 (EAITdxf -1 DAT1))
  108.                  )
  109.                  ((OR (= (EAITDXF 2 DAT1) "EAITMERKER-8")(= (EAITDXF 2 DAT1) "EAITMERKER-8"))
  110.                    (setq AIT-e8 (EAITdxf -1 DAT1))
  111.                  )
  112.                  ((OR (= (EAITDXF 2 DAT1) "EAITMERKER-9")(= (EAITDXF 2 DAT1) "EAITMERKER-9"))
  113.                    (setq AIT-e9 (EAITdxf -1 DAT1))
  114.                  )
  115.                );cond
  116.            (setq DAT1 (entget (entnext (EAITdxf -1 DAT1))))
  117.        );while
  118.  
  119.  
  120.   (cond 
  121.    ((= AIT_st "B")(progn
  122.                (setq AIT-e (entget AIT-e2))
  123.                (setq AIT-e (subst (cons 1 (rtos EAITms 2 ))(assoc 1 AIT-e) AIT-e))
  124.                (entmod AIT-e)
  125.                        (setvar "DIMSCALE" EAItms)
  126.                                 )
  127.     )
  128.    ((= AIT_st "S")(progn
  129.                (setq AIT-e (entget AIT-e1))
  130.                (setq AIT-e (subst (cons 1 EAIThm)(assoc 1 AIT-e) AIT-e))
  131.                (entmod AIT-e)
  132.                (setq AIT-e (entget AIT-e2))
  133.                (setq AIT-e (subst (cons 1 (rtos EAITms 2 ))(assoc 1 AIT-e) AIT-e))
  134.                (entmod AIT-e)
  135.              (setvar "DIMSCALE" EAItms)
  136.                (setq AIT-e (entget AIT-e3))
  137.                (setq AIT-e (subst (cons 1 (itoa EAITpos))(assoc 1 AIT-e) AIT-e))
  138.                (entmod AIT-e)
  139.                (setq AIT-e (entget AIT-e4))
  140.                (setq AIT-e (subst (cons 1 (itoa EAITbemk))(assoc 1 AIT-e) AIT-e))
  141.                (entmod AIT-e)
  142.                  (if (/= EAITaver "12")
  143.                (progn
  144.                         (setvar "DIMDEC" EAITbemk)
  145.                          (setvar "DIMTDEC" EAITbemk)
  146.                )
  147.              )  
  148.                (setq AIT-e (entget AIT-e5))
  149.                (setq AIT-e (subst (cons 1 (itoa EAITposs))(assoc 1 AIT-e) AIT-e))
  150.                (entmod AIT-e)
  151.                (setq AIT-e (entget AIT-e6))
  152.                (setq AIT-e (subst (cons 1 (itoa EAITml3))(assoc 1 AIT-e) AIT-e))
  153.                (entmod AIT-e)
  154.                (setq AIT-e (entget AIT-e7))
  155.                (setq AIT-e (subst (cons 1 EAITm7)(assoc 1 AIT-e) AIT-e))
  156.                (entmod AIT-e)
  157.                (setq AIT-e (entget AIT-e8))
  158.                (setq AIT-e (subst (cons 1 EAITm8)(assoc 1 AIT-e) AIT-e))
  159.                (entmod AIT-e)
  160.                (setq AIT-e (entget AIT-e9))
  161.                (setq AIT-e (subst (cons 1 EAITm9)(assoc 1 AIT-e) AIT-e))
  162.                (entmod AIT-e)
  163.              )
  164.     )
  165.     ((= AIT_st "L")(if (/= (EAITdxf 1 (entget AIT-e1)) "")
  166.                    (setq EAIThm (EAITdxf 1 (entget AIT-e1)))
  167.                    (progn
  168.                        (setq EAIThm "")
  169.                        (setq AIT-e (entget AIT-e1))
  170.                        (setq AIT-e (subst (cons 1 EAIThm)(assoc 1 AIT-e) AIT-e))
  171.                        (entmod AIT-e)
  172.                    )
  173.                )
  174.                (if (/= (EAITdxf 1 (entget AIT-e2)) "")
  175.                    (progn
  176.                            (setq EAITms (atof (EAITdxf 1 (entget AIT-e2))))
  177.                            (setvar "DIMSCALE" EAITms)
  178.                                )
  179.                    (progn
  180.                        (setq EAITms 1)
  181.                       (setvar "DIMSCALE" EAITms)
  182.                        (setq AIT-e (entget AIT-e2))
  183.                        (setq AIT-e (subst (cons 1 (itoa EAITms))(assoc 1 AIT-e) AIT-e))
  184.                        (entmod AIT-e)
  185.                    )
  186.                )
  187.                (if (/= (EAITdxf 1 (entget AIT-e3)) "")
  188.                    (setq EAITpos  (atoi (EAITdxf 1 (entget AIT-e3))))
  189.                    (progn
  190.                        (setq EAITpos 0)
  191.                        (setq AIT-e (entget AIT-e3))
  192.                        (setq AIT-e (subst (cons 1 (itoa EAITpos))(assoc 1 AIT-e) AIT-e))
  193.                        (entmod AIT-e)
  194.                    )
  195.                )
  196.                (if (AND (/= (EAITdxf 1 (entget AIT-e4)) "")(/= (EAITdxf 1 (entget AIT-e4)) "-"))
  197.                 (progn 
  198.                       (setq EAITbemk (atoi (EAITdxf 1 (entget AIT-e4))))
  199.                        (if (/= EAITaver "12")
  200.                      (progn
  201.                               (setvar "DIMDEC" EAITbemk)
  202.                                  (setvar "DIMTDEC" EAITbemk)
  203.                      )
  204.                    )  
  205.                 )
  206.                    (progn
  207.                        (setq EAITbemk 0)
  208.                        (if (/= EAITaver "12")
  209.                      (progn
  210.                               (setvar "DIMDEC" EAITbemk)
  211.                                  (setvar "DIMTDEC" EAITbemk)
  212.                      )
  213.                    )  
  214.                        (setq AIT-e (entget AIT-e4))
  215.                        (setq AIT-e (subst (cons 1 (itoa EAITbemk))(assoc 1 AIT-e) AIT-e))
  216.                        (entmod AIT-e)
  217.                    )
  218.                )
  219.                (if (AND (/= (EAITdxf 1 (entget AIT-e5)) "")(/= (EAITdxf 1 (entget AIT-e5)) "-"))
  220.                    (setq EAITposs (atoi (EAITdxf 1 (entget AIT-e5))))
  221.                    (progn
  222.                        (setq EAITposs 0)
  223.                        (setq AIT-e (entget AIT-e5))
  224.                        (setq AIT-e (subst (cons 1 (itoa EAITposs))(assoc 1 AIT-e) AIT-e))
  225.                        (entmod AIT-e)
  226.                    )
  227.                )
  228.                (if (AND (/= (EAITdxf 1 (entget AIT-e6)) "")(/= (EAITdxf 1 (entget AIT-e6)) "-"))
  229.                    (setq EAITml3 (atoi (EAITdxf 1 (entget AIT-e6))))
  230.                    (progn
  231.                        (setq EAITml3 0)
  232.                        (setq AIT-e (entget AIT-e6))
  233.                        (setq AIT-e (subst (cons 1 (itoa EAITml3))(assoc 1 AIT-e) AIT-e))
  234.                        (entmod AIT-e)
  235.                    )
  236.                )
  237.                (setq EAITm7   (EAITdxf 1 (entget AIT-e7))
  238.                  EAITm8   (EAITdxf 1 (entget AIT-e8))
  239.                  EAITm9   (EAITdxf 1 (entget AIT-e9))
  240.                )
  241.     )
  242.     ((= AIT_st "M")(merk))
  243.   )
  244.   (if AIT_me (menucmd AIT_me))
  245.   (setvar "ATTDIA" AIT-dia)
  246.   
  247.   (princ)
  248.  
  249. );EAITmkr
  250.  
  251.  
  252. ;----------------------------------------------------------------------------
  253. ;Definieren der Funktion Herauslesen der Attribute EAITmerk
  254.  
  255. (defun ok_merk (/ ele1 ele2 ele3 ele4 ele5 eleatt1 eleatt2 attlist elelist
  256.           dat_zeig2 z1 ende n a0 a1 a2 a3 a4 a5 a6 a7 a8 
  257.                   aenderlist wert1 wert2 wert3 wert4 stichwort thema)
  258.  
  259.  (setq ele1 (ssname asatz1 0)
  260.        ele2 (entnext ele1)
  261.        ele3 (entget ele2)
  262.        ele4 (cdr (assoc 0 ele3))
  263.        attlist (list)
  264.        eleatt1 (cdr (assoc 1 ele3))
  265.        eleatt2 (cdr (assoc 2 ele3))
  266.        elelist (list eleatt2 eleatt1)
  267.        attlist (cons elelist attlist)
  268.  )
  269.  
  270.  (while (= ele4 "ATTRIB")
  271.   (setq
  272.        ele2 (entnext ele2)
  273.        ele3 (entget ele2)
  274.        ele4 (cdr (assoc 0 ele3))
  275.   )
  276.   (if (/= ele4 "SEQEND")
  277.    (progn
  278.     (setq
  279.       eleatt1 (cdr (assoc 1 ele3))
  280.       eleatt2 (cdr (assoc 2 ele3))
  281.       elelist (list eleatt2 eleatt1)
  282.       attlist (cons elelist attlist)
  283.     )
  284.    )
  285.   )
  286.  )
  287.  
  288.  (setq attlist (reverse attlist))
  289.  (setq z1 0
  290.        ende nil
  291.        aenderlist (list)
  292.        a0 "nil" a1 "nil" a2 "nil" a3 "nil" a4 "nil" a5 "nil" a6 "nil"
  293.        a7 "nil" a8 "nil"
  294.   )
  295.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem")))
  296.  (if (not (new_dialog "MERKER" dat_zeig2)) (exit))
  297.  
  298.  (repeat (length attlist)
  299.   (setq elelist (nth z1 attlist)
  300.     eleatt1 (cadr elelist)
  301.   )
  302.   (set_tile (itoa z1) eleatt1)
  303.   (setq z1 (+ z1 1))
  304.  )
  305.  (setq thema (EAITmg "mb_mld21" "013");Allgemeiner Gebrauch der Hilfe
  306.        stichwort ":item1"
  307.  )
  308.  (action_tile "help" "(hilfe stichwort thema)")
  309.  (action_tile "0" "(setq a0 $value)")
  310.  (action_tile "1" "(setq a1 $value)")
  311.  (action_tile "2" "(setq a2 $value)")
  312.  (action_tile "3" "(setq a3 $value)")
  313.  (action_tile "4" "(setq a4 $value)")
  314.  (action_tile "5" "(setq a5 $value)")
  315.  (action_tile "6" "(setq a6 $value)")
  316.  (action_tile "7" "(setq a7 $value)")
  317.  (action_tile "8" "(setq a8 $value)")
  318.  (action_tile "accept" "(done_dialog 0)")
  319.  (action_tile "cancel" "(done_dialog 0)(setq ende \"ok\")")
  320.  (start_dialog)
  321.  (unload_dialog dat_zeig2)
  322.  
  323.  (if (/= ende "ok")
  324.   (progn
  325.        (setq aenderlist (list a0 a1 a2 a3 a4 a5 a6 a7 a8)
  326.          z1 0
  327.        )
  328.     (repeat (length aenderlist)
  329.     (setq wert1 (nth z1 aenderlist)
  330.       wert2 (nth z1 attlist)
  331.       wert3 (cadr wert2)
  332.       z1 (+ z1 1)
  333.      )
  334.      (if (and (/= wert1 "nil") (/= wert1 wert3))
  335.       (aenderung_att)
  336.      )
  337.      
  338.     )
  339.     
  340.    )
  341.   )
  342.  
  343. );defun ok_merk
  344.  
  345. ;----------------------------------------------------------------------------
  346. ;Definieren der Funktion zur Aenderung der Attribute in der Datenbank
  347.  
  348. (defun aenderung_att ()
  349.  (setq ele1 (ssname asatz1 0)
  350.        ele2 (entnext ele1)
  351.        ele3 (entget ele2)
  352.        ele4 (cdr (assoc 2 ele3))
  353.        ele5 (cdr (assoc 0 ele3))
  354.  )
  355.  
  356.  (if (= ele4 (car wert2))
  357.   (progn
  358.    (setq ele3 (subst (cons 1 wert1) (cons 1 wert3) ele3))
  359.    (entmod ele3)
  360.   )
  361.   (progn
  362.  
  363.     (while (= ele5 "ATTRIB")
  364.        (setq
  365.      ele2 (entnext ele2)
  366.      ele3 (entget ele2)
  367.      ele4 (cdr (assoc 2 ele3))
  368.      ele5 (cdr (assoc 0 ele3))
  369.        )
  370.      (if (/= ele5 "SEQEND")
  371.       (progn
  372.     (if (= ele4 (car wert2))
  373.      (progn
  374.       (setq ele3 (subst (cons 1 wert1) (cons 1 wert3) ele3))
  375.       (entmod ele3)
  376.      )
  377.     )
  378.       )  
  379.      )
  380.     )
  381.    )
  382.   )
  383. );defun aenderung_att
  384.  
  385. ;----------------------------------------------------------------------------
  386. ;Definieren des Hauptprogrammes Merker - Schalter
  387.  
  388. (defun merk (/ asatz1)
  389.  (if (not (setq asatz1 (ssget "X" (list (cons 0 "INSERT") (cons 2 "EAITMERK")))))
  390.   (no_merk)
  391.   (ok_merk)
  392.  )
  393.  (print)
  394. );defun merk
  395.  
  396. ;----------------------------------------------------------------------------
  397. ;ENDE
  398.  
  399. ;*******************************Merker-Block sprachabhaengig übersetzen
  400. (defun EAITmkum ( DAT1 / )
  401.      (while (/= DAT1 nil)       
  402.           (if (= (EAITDXF 0 DAT1) "ATTDEF")
  403.                (cond ((OR (= (EAITDXF 2 DAT1) "EAITHAUPTMENUE")(= (EAITDXF 2 DAT1) "EAITHAUTPMENUE"))
  404.                    (entmod (subst (cons 3 (EAITmg "mb_mld20" "013"))(assoc 3 DAT1) DAT1))
  405.                  )
  406.                  ((= (EAITDXF 2 DAT1) "EAITMASSTABSFAKTOR")
  407.                    (entmod (subst (cons 3 (EAITmg "mb_mld20" "014"))(assoc 3 DAT1) DAT1))
  408.                  )
  409.                  ((= (EAITDXF 2 DAT1) "EAITLETZTE-POSITION")
  410.                    (entmod (subst (cons 3 (EAITmg "mb_mld20" "015"))(assoc 3 DAT1) DAT1))
  411.                  )
  412.                  ((OR (= (EAITDXF 2 DAT1) "EAITBEM_NACHKOMMA")(= (EAITDXF 2 DAT1) "EAITMERKER-4"))
  413.                    (entmod (subst (cons 3 (EAITmg "mb_mld20" "016"))(assoc 3 DAT1) DAT1))
  414.                  )
  415.                  ((OR (= (EAITDXF 2 DAT1) "EAITPOSORT")(= (EAITDXF 2 DAT1) "EAITMERKER-5"))
  416.                    (entmod (subst (cons 3 (EAITmg "mb_mld20" "017"))(assoc 3 DAT1) DAT1))
  417.                  )
  418.                  ((OR (= (EAITDXF 2 DAT1) "EAITML3")(= (EAITDXF 2 DAT1) "EAITMERKER-6"))
  419.                    (entmod (subst (cons 3 (EAITmg "mb_mld20" "018"))(assoc 3 DAT1) DAT1))
  420.                  )
  421.                  ((= (EAITDXF 2 DAT1) "EAITMERKER-7")
  422.                    (entmod (subst (cons 3 (EAITmg "mb_mld20" "019"))(assoc 3 DAT1) DAT1))
  423.                  )
  424.                  ((= (EAITDXF 2 DAT1) "EAITMERKER-8")
  425.                    (entmod (subst (cons 3 (EAITmg "mb_mld20" "020"))(assoc 3 DAT1) DAT1))
  426.                  )
  427.                  ((= (EAITDXF 2 DAT1) "EAITMERKER-9")
  428.                    (entmod (subst (cons 3 (EAITmg "mb_mld20" "021"))(assoc 3 DAT1) DAT1))
  429.                  )
  430.                );cond
  431.           );if
  432.           (setq DAT1 (entnext (EAITDXF -1 DAT1)))
  433.           (if (/= DAT1 nil)(setq DAT1 (entget DAT1)))
  434.      );while
  435. );defun EAITmkum
  436.  
  437.  
  438.  
  439. ;Meldung aus Datenbank holen und als (princ) zurückgeben
  440. (defun EAITmsg (AIT_db AIT_pb AIT_mg AIT_pe / AIT-da AIT-ze AIT-mg)
  441. ;  (setq AIT-da (open (strcat EAITpfn "dat/" AIT_db ".dat") "r"))
  442.   (setq AIT-da (open (strcat EAITpfd AIT_db ".dat") "r"))
  443.   (if AIT-da
  444.     (progn
  445.       (setq AIT-ze (read-line AIT-da))
  446.       (while AIT-ze
  447.      (if (= (substr AIT-ze 1 3) AIT_mg)
  448.          (setq AIT-mg (substr AIT-ze 5 (- (strlen AIT-ze) 4)) AIT-ze nil)
  449.          (setq AIT-ze (read-line AIT-da))
  450.      )
  451.       )
  452.       (close AIT-da)
  453.       (if AIT_pb (princ AIT_pb)(princ))
  454.       (if AIT-mg (princ AIT-mg)(princ))
  455.       (if AIT_pe (princ AIT_pe)(princ))
  456.     )
  457.     (princ "\n\nCan't open message database!\n")
  458.   )
  459. (princ)
  460. );defun EAITmsg
  461.  
  462. ;Meldung aus Datenbank holen und als STRING zurückgeben
  463. (defun EAITmg (AIT_db AIT_mg / AIT-da AIT-ze AIT-mg)
  464.   (setq AIT-da (open (strcat EAITpfd AIT_db ".dat") "r"))
  465.   (if AIT-da
  466.     (progn
  467.       (setq AIT-ze (read-line AIT-da))
  468.       (while AIT-ze
  469.      (if (= (substr AIT-ze 1 3) AIT_mg)
  470.          (setq AIT-mg (substr AIT-ze 5 (- (strlen AIT-ze) 4)) AIT-ze nil)
  471.          (setq AIT-ze (read-line AIT-da))
  472.      )
  473.       )
  474.       (close AIT-da)
  475.     )
  476.     (princ "\n\nCan't open message database!\n")
  477.   )
  478.   (setq AIT-mg AIT-mg) 
  479. );defun EAITmg
  480.  
  481.  
  482. ;Details EIN/AUS, wenn "E" oder "A" ohne Meldung
  483. (defun EAITdta (AIT_x / AIT-x)
  484.   (if (not AIT_x)
  485.       (progn
  486.     (setq AIT-x "J")
  487.     (if (OR (= (cdr (assoc 70 (tblsearch "layer" "EAIT3d_det"))) 64)
  488.                 (= (cdr (assoc 70 (tblsearch "layer" "EAIT3d_det"))) 0))
  489.             (setq AIT_x "A")
  490.             (setq AIT_x "E")
  491.         )
  492.       )
  493.       (setq AIT-x nil)
  494.   )
  495.   (if (= AIT_x "A")
  496.       (progn
  497.      (command EAITlay EAITlfr "EAIT3d_det" "")
  498.      (if AIT-x (EAITmsg "mb_mld1" "\n" "014" nil))
  499.       )
  500.       (progn
  501.      (command EAITlay EAITlta "EAIT3d_det" "")
  502.      (command EAITreg)
  503.      (princ)
  504.      (if AIT-x (EAITmsg "mb_mld1" "\n" "013" nil))
  505.       )
  506.   )
  507. (princ)
  508. );defun EAITdta
  509.  
  510.  
  511.  
  512. ;Hilfslayer EIN/AUS, wenn "E" oder "A" ohne Meldung
  513. (defun EAIThla (AIT_x / AIT-x)
  514.   (if (not AIT_x)
  515.       (progn
  516.     (setq AIT-x "J")
  517.         (if (OR (= (cdr (assoc 70 (tblsearch "layer" "EAIThilfe"))) 64)
  518.                 (= (cdr (assoc 70 (tblsearch "layer" "EAIThilfe"))) 0))
  519.                   (setq AIT_x "A")
  520.                   (setq AIT_x "E")
  521.         )
  522.       )
  523.       (setq AIT-x nil)
  524.   )
  525.   (if (= AIT_x "A")
  526.       (progn
  527.      (command EAITlay EAITlfr "EAIT3d_hlf" EAITlfr "EAIThilfe" "")
  528.         (if (tblsearch "layer" "AIT$hilfe")
  529.         (command EAITlay EAITlfr "AIT$hilfe" "")
  530.         )
  531.         (if (tblsearch "layer" "AIT$3D_hlf")
  532.         (command EAITlay EAITlfr "AIT$3D_hlf" "")
  533.         )
  534.      (if AIT-x (EAITmsg "mb_mld1" "\n" "012" nil))
  535.       )
  536.       (progn
  537.      (command EAITlay EAITlta "EAIT3d_hlf" EAITlta "EAIThilfe" "")
  538.         (if (tblsearch "layer" "AIT$hilfe")
  539.         (command EAITlay EAITlta "AIT$hilfe" "")
  540.         )
  541.         (if (tblsearch "layer" "AIT$3D_hlf")
  542.         (command EAITlay EAITlta "AIT$3D_hlf" "")
  543.         )
  544.      (if AIT-x (EAITmsg "mb_mld1" "\n" "011" nil))
  545.       )
  546.   )
  547. (princ)
  548. );defun EAIThla
  549.  
  550.  
  551.  
  552. ;Hilfslayer EIN/AUS, wenn "E" oder "A" ohne Meldung gleiche Funktion wie oben
  553. ;jedoch fⁿr den Aufruf aus dem Menⁿ zusΣtzlich mit dem REGEN-Befehl
  554. (defun EAIThlam (AIT_x / AIT-x)
  555.   (if (not AIT_x)
  556.       (progn
  557.     (setq AIT-x "J")
  558.     (if (OR (= (cdr (assoc 70 (tblsearch "layer" "EAIThilfe"))) 64)
  559.                 (= (cdr (assoc 70 (tblsearch "layer" "EAIThilfe"))) 0))
  560.             (setq AIT_x "A")
  561.             (setq AIT_x "E"))
  562.       )
  563.       (setq AIT-x nil)
  564.   )
  565.   (if (= AIT_x "A")
  566.       (progn
  567.     (command EAITlay EAITlfr "EAIT3d_hlf" EAITlfr "EAIThilfe" "")
  568.         (if (tblsearch "layer" "AIT$hilfe")
  569.         (command EAITlay EAITlfr "AIT$hilfe" "")
  570.         )
  571.         (if (tblsearch "layer" "AIT$3D_hlf")
  572.         (command EAITlay EAITlfr "AIT$3D_hlf" "")
  573.         )
  574.     (if AIT-x (EAITmsg "mb_mld1" "\n" "012" nil))
  575.       )
  576.       (progn
  577.     (command EAITlay EAITlta "EAIT3d_hlf" EAITlta "EAIThilfe" "")
  578.         (command EAITreg)(princ)
  579.         (if (tblsearch "layer" "AIT$hilfe")
  580.            (progn
  581.         (command EAITlay EAITlta "AIT$hilfe" "")
  582.         (command EAITreg)(princ)
  583.            )
  584.         )
  585.         (if (tblsearch "layer" "AIT$3D_hlf")
  586.            (progn
  587.         (command EAITlay EAITlta "AIT$3D_hlf" "")
  588.          (command EAITreg)(princ)
  589.            )
  590.         )
  591.      (if AIT-x (EAITmsg "mb_mld1" "\n" "011" nil))
  592.       )
  593.   )
  594. (princ)
  595. );defun EAIThlam
  596.  
  597.  
  598. ;INFOlayer EIN/AUS, wenn "E" oder "A" ohne Meldung
  599. (defun EAITst-e-a (AIT_x / AIT-x)
  600.   (if (not AIT_x)
  601.       (progn
  602.     (setq AIT-x "J")
  603.     (if (OR (= (cdr (assoc 70 (tblsearch "layer" "EAITinfo"))) 64)
  604.                 (= (cdr (assoc 70 (tblsearch "layer" "EAITinfo"))) 0))
  605.             (setq AIT_x "A")
  606.             (setq AIT_x "E"))
  607.       )
  608.       (setq AIT-x nil)
  609.   )
  610.   (if (= AIT_x "A")
  611.       (progn
  612.     (command EAITlay EAITlfr "EAITinfo" "")
  613.         (if (tblsearch "layer" "AIT$info")
  614.         (command EAITlay EAITlfr "AIT$info" "")
  615.         )
  616.     (if AIT-x (EAITmsg "mb_mld15" "\n" "014" nil))
  617.       )
  618.       (progn
  619.     (command EAITlay EAITlta "EAITinfo" "")
  620.         (if (tblsearch "layer" "AIT$info")
  621.         (command EAITlay EAITlta "AIT$info" "")
  622.         )
  623.     (if AIT-x (EAITmsg "mb_mld15" "\n" "015" nil))
  624.       )
  625.   )
  626. (princ)
  627. ); defun EAITst-e-a
  628.  
  629.  
  630. ;INFOlayer EIN/AUS, wenn "E" oder "A" ohne Meldunggleiche Funktion wie oben
  631. ;jedoch fⁿr den Aufruf aus dem Menⁿ zusΣtzlich mit dem REGEN-Befehl
  632. (defun EAITst-e-a-m (AIT_x / AIT-x)
  633.   (if (not AIT_x)
  634.       (progn
  635.     (setq AIT-x "J")
  636.     (if (OR (= (cdr (assoc 70 (tblsearch "layer" "EAITinfo"))) 64)
  637.                 (= (cdr (assoc 70 (tblsearch "layer" "EAITinfo"))) 0))
  638.             (setq AIT_x "A")
  639.             (setq AIT_x "E"))
  640.       )
  641.       (setq AIT-x nil)
  642.   )
  643.   (if (= AIT_x "A")
  644.       (progn
  645.     (command EAITlay EAITlfr "EAITinfo" "")
  646.         (if (tblsearch "layer" "AIT$info")
  647.         (command EAITlay EAITlfr "AIT$info" "")
  648.         )
  649.     (if AIT-x (EAITmsg "mb_mld15" "\n" "014" nil))
  650.       )
  651.       (progn
  652.     (command EAITlay EAITlta "EAITinfo" "")
  653.         (command EAITreg)(princ)
  654.         (if (tblsearch "layer" "AIT$info")
  655.           (progn
  656.         (command EAITlay EAITlta "AIT$info" "")
  657.             (command EAITreg)(princ)
  658.           )
  659.         )
  660.     (if AIT-x (EAITmsg "mb_mld15" "\n" "015" nil))
  661.       )
  662.   )
  663. (princ)
  664. ); defun EAITst-e-a-m
  665.  
  666.  
  667. ;3D_view Layer EIN/AUS, wenn "E" oder "A" ohne Meldunggleiche Funktion wie oben
  668. ;jedoch fⁿr den Aufruf aus dem Menⁿ zusΣtzlich mit dem REGEN-Befehl
  669. (defun EAITvplam (AIT_x / AIT-x)
  670.   (if (not AIT_x)
  671.       (progn
  672.     (setq AIT-x "J")
  673.     (if (OR (= (cdr (assoc 70 (tblsearch "layer" "EAIT3d_view"))) 64)
  674.            (= (cdr (assoc 70 (tblsearch "layer" "EAIT3d_view"))) 0))
  675.             (setq AIT_x "A")
  676.             (setq AIT_x "E"))
  677.       )
  678.       (setq AIT-x nil)
  679.   )
  680.   (if (= AIT_x "A")
  681.       (progn
  682.           (command EAITlay EAITlfr "EAIT3d_view" "")
  683.             (if AIT-x (EAITmsg "mb_mld21" "\n" "067" nil))
  684.       )
  685.       (progn
  686.          (command EAITlay EAITlta "EAIT3d_view" "")
  687.         (command EAITreg)(princ)
  688.         (if AIT-x (EAITmsg "mb_mld21" "\n" "068" nil))
  689.       )
  690.   )
  691. (princ)
  692. ); defun EAITvplam
  693.  
  694.  
  695. ;Datenbank auslesen
  696. (defun EAITDBL (AIT_nrx / AIT-da)
  697. ;   (setq AIT-da (open (strcat EAITpfn "dat/" AIT_nrx ".dat") "r") EAITnr nil)
  698.    (setq AIT-da (open (strcat EAITpfd AIT_nrx ".dat") "r") EAITnr nil)
  699.    (if AIT-da
  700.       (progn
  701.      (setq EAITnr    (read-line AIT-da)
  702.            EAITnrx   (read-line AIT-da)
  703.            EAITbez1  (read-line AIT-da)
  704.            EAITbez2  (read-line AIT-da)
  705.            EAITwer1  (read-line AIT-da)
  706.            EAITwer2  (read-line AIT-da)
  707.            EAITlie1  (read-line AIT-da)
  708.            EAITlie2  (read-line AIT-da)
  709.            EAITlmax  (atof (read-line AIT-da))
  710.            EAITbmax  (atof (read-line AIT-da))
  711.            EAITme    (read-line AIT-da)
  712.            EAITgew   (atof (read-line AIT-da))
  713.            EAITinf1  (read-line AIT-da)
  714.            EAITinf2  (read-line AIT-da)
  715.            EAITinf3  (read-line AIT-da)
  716.            EAITinf4  (read-line AIT-da)
  717.            EAITinf5  (read-line AIT-da)
  718.            EAITinf6  (read-line AIT-da)
  719.            EAITinf7  (read-line AIT-da)
  720.            EAITinf8  (read-line AIT-da)
  721.            EAITinf9  (read-line AIT-da)
  722.            EAITinf10 (read-line AIT-da)
  723.            EAITtyp   (read-line AIT-da)      ;3D-Typ
  724.            EAITmen3  (read-line AIT-da)      ;p=
  725.            EAITrot   (read-line AIT-da)      ;i=
  726.            EAITlmin  (atof (read-line AIT-da))
  727.            EAITgraf  EAITnrx
  728.            EAITl1    0.0
  729.            EAITb1    0.0
  730.            EAITl2    0.0
  731.            EAITb2    0.0
  732.            EAITt1    1.0
  733.            EAITve    " "
  734.      )
  735.      (close AIT-da)
  736.       )
  737.       (progn
  738.      (EAITmsg "mb_mld1" "\n\n" "009" nil)(princ " \"")(princ AIT_nrx)(princ "\" ")(EAITmsg "mb_mld1" nil "010" "\n")
  739.          ;Aenderung Hauer - 23.12.96
  740.          ;EAITbez1 und EAITmen3 werden bei nicht gefundener dat-Datei
  741.          ;mit Dummy-Werten belegt
  742.          (setq AIT_nrx nil
  743.                EAITbez1 "unbekannt"
  744.                EAITmen3 "p3=*"
  745.          )
  746.          ;Ende Aenderung Hauer - 23.12.96
  747.       )
  748.    )
  749. ); defun EAITDBL
  750.  
  751.  
  752. ;Grad in Bogen
  753. (defun EAITgib (AIT_w) (/ (* AIT_w Pi) 180))
  754.  
  755.  
  756. ;Bogen in Grad
  757. (defun EAITbig (AIT_w) (/ (* AIT_w 180) Pi))
  758.  
  759.  
  760. ;MB verlassen
  761. (defun EAITend ( / )
  762.     (setq EAITaver (substr (getvar "ACADVER") 1 2)
  763.          EAITplat (substr (getvar "PLATFORM") 1 17)
  764.    )
  765.    
  766.     (cond ((= EAITaver "12")
  767.               (if (/= EAITmainmen "")
  768.                     (command EAITmen EAITmainmen)
  769.               )
  770.          )
  771.          ((AND (= EAITaver "13")(/= EAITplat "Microsoft Windows"))
  772.               (if (/= EAITmainmen "")
  773.                     (command EAITmen EAITmainmen)
  774.               )
  775.          )
  776.          ((OR (= EAITaver "14")(AND (= EAITaver "13")(= EAITplat "Microsoft Windows")))
  777.           (if (/= EAITmainmen "")(command EAITmen EAITmainmen))
  778.           (if (/= EAITtmen0 "")(command EAITmenl EAITtmen0))
  779.           (if (/= EAITtmen1 "")(command EAITmenl EAITtmen1))
  780.           (if (/= EAITtmen2 "")(command EAITmenl EAITtmen2))
  781.           (if (/= EAITtmen3 "")(command EAITmenl EAITtmen3))
  782.           (if (/= EAITtmen4 "")(command EAITmenl EAITtmen4))
  783.           (if (/= EAITtmen5 "")(command EAITmenl EAITtmen5))
  784.           (if (/= EAITtmen6 "")(command EAITmenl EAITtmen6))
  785.           (if (/= EAITtmen7 "")(command EAITmenl EAITtmen7))
  786.           (if (/= EAITtmen8 "")(command EAITmenl EAITtmen8))
  787.           (if (/= EAITtmen9 "")(command EAITmenl EAITtmen9))
  788.           (if (/= EAITtabmen1 "")(menucmd (strcat "T1=" EAITtabmen1)))
  789.           (if (/= EAITtabmen2 "")(menucmd (strcat "T2=" EAITtabmen2)))
  790.           (if (/= EAITtabmen3 "")(menucmd (strcat "T3=" EAITtabmen3)))
  791.           (if (/= EAITtabmen4 "")(menucmd (strcat "T4=" EAITtabmen4)))
  792.           (if (/= EAITtabmen5 "")(menucmd (strcat "T5=" EAITtabmen5)))
  793.          )
  794.  
  795.     );cond
  796.  
  797.   (setvar "CMDECHO" EAITcecho)(setvar "MENUECHO" EAITmecho)(setvar "UCSICON" EAITuicon)
  798.   (setq *error* EAITera EAITera nil)
  799.   (grtext)
  800.   (princ)
  801. );defun EAITend
  802.  
  803.  
  804. ;Sammeln von Elementen von E an
  805. (defun EAITss (E / SS1)
  806.    (setq SS1 (ssadd))
  807.    (while E (setq SS1 (ssadd E SS1) E (entnext E)))
  808.    (setq SS1 SS1)
  809. );defun EAITss
  810.  
  811.  
  812. ;aktuelle Variablen-Belegung vor dem Programmstart
  813. (defun EAITvari ()
  814.  (setq EAITsl '("ANGBASE" "ANGDIR"    "APERTURE"  "ATTDIA"   "ATTMODE"  "ATTREQ"
  815.         "AUNITS"  "AUPREC"    "BLIPMODE"  "DRAGMODE" "DRAGP1"   "DRAGP2"
  816.         "EXPERT"  "HIGHLIGHT" "LIMCHECK"  "LUNITS"   "LUPREC"   "ORTHOMODE"
  817.         "OSMODE"  "PICKBOX"   "REGENMODE" "SNAPMODE" "UCSFOLLOW" 
  818.            )
  819.  )
  820.  
  821. ;*********************       
  822.        (setq EAITbksn (getvar "ucsname")
  823.          EAITbkso (getvar "ucsorg")
  824.          EAITbksx (getvar "ucsxdir")
  825.          EAITbksy (getvar "ucsydir")
  826.        )
  827. ;*********************       
  828.  
  829.  
  830.  (EAITvme EAITsl)
  831.  
  832.  (setq EAITofang (getvar "osmode")) 
  833.   (cond ((= EAITofang    0)(setq EAITofn    0 EAITofx EAITofKEI))
  834.     ((= EAITofang    1)(setq EAITofn    1 EAITofx EAITofEND))
  835.     ((= EAITofang    2)(setq EAITofn    2 EAITofx EAITofMIT))
  836.     ((= EAITofang    4)(setq EAITofn    4 EAITofx EAITofZEN))
  837.     ((= EAITofang    8)(setq EAITofn    8 EAITofx EAITofPUN))
  838.     ((= EAITofang   16)(setq EAITofn   16 EAITofx EAITofQUA))
  839.     ((= EAITofang   32)(setq EAITofn   32 EAITofx EAITofSCH))
  840.     ((= EAITofang   64)(setq EAITofn   64 EAITofx EAITofBAS))
  841.     ((= EAITofang  128)(setq EAITofn  128 EAITofx EAITofLOT))
  842.     ((= EAITofang  256)(setq EAITofn  256 EAITofx EAITofTAN))
  843.     ((= EAITofang  512)(setq EAITofn  512 EAITofx EAITofNÄC))
  844.     ((= EAITofang 1024)(setq EAITofn 1024 EAITofx EAITofQUI))
  845.     (T                 (setq EAITofn    0 EAITofx EAITofKEI))
  846.   )
  847.     
  848.  (setq EAITal  (getvar "CLAYER"))
  849.  (princ)
  850. );defun EAITvari
  851.  
  852.  
  853. ;benötigte Variablen-Belegung
  854. (defun EAITvars ()
  855.  
  856.  (setq EAITera *error* *error* EAITerr EAITmen2 nil)
  857.  (setvar "ANGBASE" 0) (setvar "ANGDIR"  0)  (setvar "ATTDIA" 0)   (setvar "ATTMODE" 1)
  858.  (setvar "ATTREQ" 1)  (setvar "AUNITS" 0)   (setvar "AUPREC" 3)   (setvar "BLIPMODE" 0)
  859.  (setvar "CMDECHO" 0) (setvar "DRAGMODE" 2) (setvar "DRAGP1" 10)  (setvar "DRAGP2" 25)
  860.  (setvar "EXPERT" 0)  (setvar "HIGHLIGHT" 1)(setvar "LIMCHECK" 0) (setvar "LUNITS" 2)
  861.  (setvar "LUPREC" 3)  (setvar "MENUECHO" 5) (setvar "ORTHOMODE" 0)(setvar "OSMODE" 0)
  862.  (setvar "PICKBOX" 5) (setvar "REGENMODE" 0)(setvar "SNAPMODE"  0)(setvar "UCSFOLLOW" 0)
  863.  
  864.  ;Hilfslayer EIN / Details AUS
  865.  (EAITdta "A") (EAIThla "E") (EAITst-e-a "E")
  866.  (princ)
  867.  
  868. );EAITvars
  869.  
  870.  
  871. ;Variablen auf Ursprungswerte zurücksetzen
  872. (defun EAITvarz ( / )
  873.        (EAITvzu EAITsl EAITvw)
  874.        (setq *error* EAITera)
  875.        (command EAITlay EAITlse EAITal "")
  876.        (terpri)(princ)
  877.        (setvar "cmdecho" 0) (setvar "menuecho" 5)
  878. );EAITvarz
  879.  
  880. ;*** Rücksetzen des BKS
  881. (defun EAITbksz ( / )
  882.        (cond ((AND (= EAITbksn "")(= EAITbkso '(0 0) )(= EAITbksx '(1.0 0.0 0.0) )(= EAITbksy '(0.0 1.0 0.0) ))
  883.            (command EAITbks EAITbwe)
  884.          )
  885.          ((/= EAITbksn "")
  886.            (command EAITbks EAITbho EAITbksn)
  887.          )
  888.          (T
  889.            (command EAITbks EAITbwe)
  890.          )
  891.        )
  892. );EAITbksz
  893.  
  894.  
  895. ;Speichert Systemvariablen
  896. (defun EAITvme (EAITsl / )
  897.   (setq EAITvw (mapcar 'getvar EAITsl))
  898. )
  899.  
  900. ;Speichert Systemvariablen zurück
  901. (defun EAITvzu (EAITsl EAITvw / )
  902.   (mapcar 'setvar EAITsl EAITvw)
  903. )
  904.  
  905.  
  906. ;Fehler-Behandlung
  907. (defun EAITerr (AIT_st)
  908.    (command)
  909. ;*********************  Rücksetzen des BKS
  910.        (cond ((AND (= EAITbksn "")(= EAITbkso '(0 0) )(= EAITbksx '(1.0 0.0 0.0) )(= EAITbksy '(0.0 1.0 0.0) ))
  911.            (command EAITbks EAITbwe)
  912.          )
  913.          ((/= EAITbksn "")
  914.            (command EAITbks EAITbho EAITbksn)
  915.          )
  916.          (T
  917.            (command EAITbks EAITbwe)
  918.          )
  919.        )
  920. ;************************       
  921.    (prompt "\nEAitem: ")(princ AIT_st)(princ)
  922.    (EAITvzu EAITsl EAITvw)
  923.    (command EAITlay EAITlse EAITal "")
  924.    (if (/= AIT-atst nil)(command EAITtst AIT-atst AIT-tl3 AIT-tl40 AIT-tl41 AIT-tl50 "" "" ""))
  925.    (setq *error* EAITera EAITera nil)
  926.    (menucmd "p1=*")
  927.    (terpri)(princ)
  928. );defun EAITerr
  929.  
  930.  
  931. ;Hauptblock eines zusammengesetzten Elementes
  932. (defun EAIThb (AIT_eb1 / AIT-eb2 AIT-ind AIT-ref AIT-en AIT-nam1 AIT-nam2)
  933.  (setq AIT-ind (atoi (EAITdxf 1 (entget (entnext AIT_eb1))))
  934.        AIT-ref (EAITdxf 5 (entget AIT_eb1))
  935.        AIT-nam1 (substr (EAITdxf 2 (entget AIT_eb1)) 1 7)
  936.  )
  937.  (while (> AIT-ind 0)
  938.     (setq AIT-ref (ITOH (1- (HTOI AIT-ref)))
  939.       AIT-eb2 (handent AIT-ref)
  940.     )
  941.     (while (and (not AIT-eb2)(> AIT-ref "0"))
  942.        (setq AIT-ref (ITOH (1- (HTOI AIT-ref)))
  943.          AIT-eb2 (handent AIT-ref)
  944.        )
  945.     )
  946.     (if (= (EAITdxf 0 (entget AIT-eb2)) "INSERT")(setq AIT-ind (1- AIT-ind)))
  947.  )
  948.  ;Hauptelement?
  949.  (setq AIT-nam2 (EAITdxf 2 (entget AIT-eb2)))
  950.  (if (> (strlen AIT-nam2) 7)(setq AIT-nam2 (substr AIT-nam2 1 7)) )
  951.  (if (= AIT-nam1 AIT-nam2) (setq AIT_eb1 AIT-eb2) (setq AIT_eb1 AIT_eb1) )
  952. );defun EAIThb
  953.  
  954.  
  955.  
  956.  
  957. ;Integer TO Hexadezimal
  958. (defun ITOH (AIT_dez / AIT-hexm AIT-hex AIT-int AIT-rest)
  959.  (setq AIT-hexm "0123456789ABCDEF"
  960.        AIT-hex ""
  961.  )
  962.  (while (> AIT_dez 0)
  963.    (setq AIT-int  (fix (/ AIT_dez 16))
  964.      AIT-rest (- AIT_dez (* AIT-int 16))
  965.      AIT-hex  (strcat (substr AIT-hexm (1+ AIT-rest) 1) AIT-hex)
  966.      AIT_dez AIT-int
  967.    )
  968.  )
  969.  (if (= AIT-hex "")(setq AIT-hex "0")(setq AIT-hex AIT-hex))
  970. )
  971.  
  972.  
  973. ;Integer TO Hexadezimal
  974. (defun HTOI (AIT_hex / AIT-int AIT-len AIT-pot AIT-chr)
  975.  (setq AIT_hex (strcase AIT_hex)
  976.        AIT-int 0
  977.        AIT-pot 0
  978.        AIT-len (strlen AIT_hex)
  979.  )
  980.  (while (> AIT-len 0)
  981.    (setq AIT-chr (ascii (substr AIT_hex AIT-len 1)) )
  982.    (cond ((and (> AIT-chr 47)(< AIT-chr 58)) (setq AIT-int (+ AIT-int (* (- AIT-chr 48) (expt 16 AIT-pot))) ) )
  983.      ((and (> AIT-chr 64)(< AIT-chr 71)) (setq AIT-int (+ AIT-int (* (- AIT-chr 55) (expt 16 AIT-pot))) ) )
  984.      (T                                  (setq AIT-int 0 AIT-len 1))
  985.    )
  986.    (setq AIT-len (1- AIT-len)
  987.      AIT-pot (1+ AIT-pot)
  988.    )
  989.  )
  990.  (fix AIT-int)
  991. )
  992.  
  993.  
  994. ;Pos-Nr in Stückliste für Hauptelement + Subelemente
  995. (defun EAITposx (AIT_Posy AIT_Pos AIT_Idx / AIT-posy AIT-n AIT-len AIT-nx
  996.                         AIT-posx AIT-dn AIT-nv AIT-n1 AIT-n2
  997.                         AIT-n3 AIT-n4 AIT-n5 AIT-n6)
  998.  (setq AIT-n  1
  999.        AIT-nv 0
  1000.        AIT-nx 0
  1001.        AIT-n1 ","
  1002.        AIT-n2 ","
  1003.        AIT-n3 ","
  1004.        AIT-n4 ","
  1005.        AIT-n5 ","
  1006.        AIT-n6 ","
  1007.        AIT-len (strlen AIT_Posy)
  1008.  )
  1009.  (while (<= AIT-n AIT-len)
  1010.    (if (= (substr AIT_Posy AIT-n 1) ",")
  1011.        (progn
  1012.      (setq AIT-nx (+ AIT-nx 1)
  1013.            AIT-dn (- AIT-n AIT-nv)
  1014.            AIT-nv (+ AIT-nv 1)
  1015.      )
  1016.      (cond ((= AIT-nx 1)(setq AIT-n1 (substr AIT_Posy AIT-nv AIT-dn)) )
  1017.            ((= AIT-nx 2)(setq AIT-n2 (substr AIT_Posy AIT-nv AIT-dn)) )
  1018.            ((= AIT-nx 3)(setq AIT-n3 (substr AIT_Posy AIT-nv AIT-dn)) )
  1019.            ((= AIT-nx 4)(setq AIT-n4 (substr AIT_Posy AIT-nv AIT-dn)) )
  1020.            ((= AIT-nx 5)(setq AIT-n5 (substr AIT_Posy AIT-nv AIT-dn)) )
  1021.            (T           (setq AIT-n6 (substr AIT_Posy AIT-nv AIT-dn)) )
  1022.      )
  1023.      (setq AIT-nv AIT-n)
  1024.        )
  1025.    )
  1026.    (setq AIT-n (+ AIT-n 1))
  1027.  )
  1028.  (if (> AIT-len 0)
  1029.     (progn
  1030.       (setq AIT-nx (+ AIT-nx 1)
  1031.         AIT-dn (- AIT-n AIT-nv)
  1032.         AIT-nv (+ AIT-nv 1)
  1033.       )
  1034.       (cond ((= AIT-nx 1)(setq AIT-n1 (strcat (substr AIT_Posy 1 AIT-len) ",")))
  1035.         ((= AIT-nx 2)(setq AIT-n2 (strcat (substr AIT_Posy AIT-nv AIT-dn) ",")))
  1036.         ((= AIT-nx 3)(setq AIT-n3 (strcat (substr AIT_Posy AIT-nv AIT-dn) ",")))
  1037.         ((= AIT-nx 4)(setq AIT-n4 (strcat (substr AIT_Posy AIT-nv AIT-dn) ",")))
  1038.         ((= AIT-nx 5)(setq AIT-n5 (strcat (substr AIT_Posy AIT-nv AIT-dn) ",")))
  1039.         ((= AIT-nx 6)(setq AIT-n6 (strcat (substr AIT_Posy AIT-nv AIT-dn) ",")))
  1040.       )
  1041.     )
  1042.  )
  1043.  
  1044.  (if (= AIT_Pos 0)(setq AIT-posx "")(setq AIT-posx (strcat (itoa AIT_Pos) ",")))
  1045.  (cond ((= AIT_Idx 2)(setq AIT-n2 AIT-posx))
  1046.        ((= AIT_Idx 3)(setq AIT-n3 AIT-posx))
  1047.        ((= AIT_Idx 4)(setq AIT-n4 AIT-posx))
  1048.        ((= AIT_Idx 5)(setq AIT-n5 AIT-posx))
  1049.        ((= AIT_Idx 6)(setq AIT-n6 AIT-posx))
  1050.        (T            (setq AIT-n1 AIT-posx))
  1051.  )
  1052.  
  1053.  (setq AIT-posy (strcat AIT-n1 AIT-n2 AIT-n3 AIT-n4 AIT-n5 AIT-n6)
  1054.        AIT-len  (strlen AIT-posy)
  1055.  )
  1056.  
  1057.  (while (and (> AIT-len 0)(= (substr AIT-posy AIT-len 1) ","))
  1058.     (setq  AIT-len (- AIT-len 1)
  1059.            AIT-posy (substr AIT-posy 1 AIT-len)
  1060.     )
  1061.  )
  1062.  (setq AIT-posy AIT-posy)
  1063. );defun EAITposx
  1064.  
  1065. ;Checken von Abmessungen 
  1066. (defun EAITck ( Eing / )
  1067.    (while (or (< Eing EAITlmin) (> Eing EAITlmax))
  1068.                (EAITabm_warn) 
  1069.                (initget (+ 1 2 4))                                
  1070.                (EAITmsg "mb_mld13" "\n" "007" nil)       ;Neue Eingabe : 
  1071.                (setq Eing (getdist))
  1072.                (if (= Eing nil)(setq Eing EAITlpr))
  1073.    )
  1074.    (setq EAITlpr Eing)
  1075.    (setq Eing Eing)
  1076. );defun EAITck
  1077.  
  1078. ;Warnung mit Dialogbox bei falscher Eingabe von Abmessungen
  1079. (defun EAITabm_warn ( / dcl_id )
  1080.  
  1081.       (if (< (setq dcl_id (load_dialog (strcat EAITpfd "EAITem.dcl"))) 0)
  1082.                (exit)
  1083.        )
  1084.        (new_dialog "abm_warnung" dcl_id)
  1085.  
  1086.        (set_tile "Titel" (EAITmg "mb_mld15" "016"))
  1087.        (set_tile "Meldung10" (EAITmg "mb_mld13" "010"))
  1088.        (if (OR (= EAITtyp "B1")(= EAITtyp "B2"))
  1089.              (set_tile "Meldung11" (strcat  (EAITmg "mb_mld13" "001")(EAITmg "mb_mld13" "002") "  " (rtos EAITlmin 2 1) " x "(rtos EAITlmin 2 1) " mm  " (EAITmg "mb_mld13" "003") (rtos EAITlmax 2 1) " x " (rtos EAITbmax 2 1) "  mm"))
  1090.              (set_tile "Meldung11" (strcat  (EAITmg "mb_mld13" "001")(EAITmg "mb_mld13" "002") "  " (rtos EAITlmin 2 1) " mm  " (EAITmg "mb_mld13" "003") "  " (rtos EAITlmax 2 1) "  mm"))
  1091.        ) 
  1092.        (action_tile "accept"      "(done_dialog 1)")    
  1093.     
  1094.        (setq what_next (start_dialog))
  1095.  
  1096.        (unload_dialog dcl_id)
  1097.  
  1098. );Defun EAITabm_warn
  1099.  
  1100.  
  1101.  
  1102. ;alte Zeichnungen umsetzen
  1103. (if (AND (tblsearch "BLOCK" "AIT$INFO")(NOT (tblsearch "BLOCK" "EAITINFO")))
  1104.    (progn
  1105.       (load (strcat EAITpfn "EAITkonv"))
  1106.       (EAITkonvinfo)
  1107.    ) 
  1108. )
  1109. (if (AND (tblsearch "BLOCK" "AIT$MERK")(NOT (tblsearch "BLOCK" "EAITMERK")))
  1110.    (progn
  1111.       (load (strcat EAITpfn "EAITkonv"))
  1112.       (EAITkonvmerk)
  1113.    ) 
  1114. )
  1115. (if (AND (tblsearch "BLOCK" "AIT$STP1")(NOT (tblsearch "BLOCK" "EAITSTP1")))
  1116.    (progn
  1117.       (load (strcat EAITpfn "EAITkonv"))
  1118.       (EAITkonvstp1)
  1119.    ) 
  1120. )
  1121. (if (AND (tblsearch "BLOCK" "AIT$STP2")(NOT (tblsearch "BLOCK" "EAITSTP2")))
  1122.    (progn
  1123.       (load (strcat EAITpfn "EAITkonv"))
  1124.       (EAITkonvstp2)
  1125.    ) 
  1126. )
  1127. (if (AND (tblsearch "BLOCK" "AIT$STP3")(NOT (tblsearch "BLOCK" "EAITSTP3")))
  1128.    (progn
  1129.       (load (strcat EAITpfn "EAITkonv"))
  1130.       (EAITkonvstp3)
  1131.    ) 
  1132. )
  1133. (if (AND (tblsearch "BLOCK" "AIT$STP4")(NOT (tblsearch "BLOCK" "EAITSTP4")))
  1134.    (progn
  1135.       (load (strcat EAITpfn "EAITkonv"))
  1136.       (EAITkonvstp4)
  1137.    ) 
  1138. )
  1139.  
  1140.  
  1141. ;Logo
  1142. (EAITmsg "mb_mld1" "\n\n" "001" nil)
  1143.  
  1144.  
  1145. ;MB-Informationen zur Zeichnung holen
  1146. (EAITmkr "L" nil)
  1147.  
  1148.  
  1149. ;************************************************************************
  1150. ; Item - Projektarbeiten Hauer Beginn
  1151. ; Stand: 28.12.1996
  1152. ;************************************************************************
  1153.  
  1154. ;---------------------------------------------------------------------------
  1155. ;Definieren der Funktion zur Anzeige der item - Info
  1156.  
  1157. (defun EAITueber ()
  1158.  
  1159.  (setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  1160.  (if (not (new_dialog "INFO" dat_zeig2)) (exit))
  1161.  ;Textdatei aufrufen:
  1162.  (setq aus (strcat EAITpfd "EAIT_H.TXT") 
  1163.       aus1 (open aus "r")
  1164.       stichwort ":info"
  1165.  )
  1166.  ;Dia fuellen:
  1167.  (start_image "infologo")
  1168.  (setq xxl (dimx_tile "infologo")
  1169.        yyl (dimy_tile "infologo")
  1170.  )
  1171.  (slide_image 0 0 xxl yyl (strcat EAITpfn "eaitnew(logo)"))
  1172.  (end_image)
  1173.  ;Listbox fuellen:
  1174.  (setq schleife T)
  1175.  (start_list "infotxt" 3)
  1176.  (while schleife
  1177.   (setq zeile (read-line aus1))
  1178.   (if (= zeile stichwort) 
  1179.    (progn
  1180.     (while (/= zeile ":ende") 
  1181.      (setq zeile (read-line aus1))
  1182.      (if (/= zeile ":ende") (add_list zeile))
  1183.     )
  1184.     (setq schleife nil)
  1185.    )
  1186.   )
  1187.  )
  1188.  (end_list)
  1189.  (close aus1) 
  1190.  (start_dialog)
  1191.  (action_tile "accept" "(done_dialog 0)")
  1192.  (unload_dialog dat_zeig2) 
  1193.  (princ)
  1194. )
  1195.  
  1196. ;----------------------------------------------------------------------------
  1197. ;Definieren der Datei zur allgemeinen Hilfe - Anzeige
  1198. (defun EAIThilfe ()
  1199.  
  1200.  ;Definition von Stichwort und Thema
  1201.  ;-Stichwort: Texteintrag hinter welchem sich beschreibender Text verbirgt
  1202.  ;-Thema: Hilfethema auf dem Bildschirm
  1203.  (setq  
  1204.        stichwort ":begin_help"
  1205.        thema (EAITmg "mb_mld21" "013");Allgemeiner Gebrauch der Hilfe
  1206.  )
  1207.  (hilfe stichwort thema)
  1208.  (princ)
  1209. )
  1210.  
  1211. ;----------------------------------------------------------------------------
  1212.  
  1213. ;Definieren der Hilfefunktion aus dem Programm heraus
  1214.  
  1215. (defun hilfe (stichwort thema / dat_zeighelp aus aus1 schleife zeile
  1216.               )
  1217.  
  1218.  (setq aus (strcat EAITpfd "EAIT_H.TXT") 
  1219.       aus1 (open aus "r")
  1220.  )
  1221.  
  1222.  (setq dat_zeighelp (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  1223.  
  1224.  (if (not (new_dialog "HILFE" dat_zeighelp)) (exit))
  1225.  (set_tile "thema" thema)
  1226.  (setq schleife T)
  1227.   (start_list "help" 3)
  1228.    (while schleife
  1229.      (setq zeile (read-line aus1))
  1230.       (if (= zeile stichwort) 
  1231.         (progn
  1232.                 (while (/= zeile ":ende") 
  1233.                 (setq zeile (read-line aus1))
  1234.                 (if (/= zeile ":ende") (add_list zeile))
  1235.         )
  1236.         (setq schleife nil)
  1237.        )
  1238.      )
  1239.   )
  1240.  (end_list)
  1241.  (action_tile "accept" "(done_dialog 0)")
  1242.  (action_tile "index" "(helpindex) (list_fuell)")
  1243.  (start_dialog)
  1244.  (unload_dialog dat_zeighelp)
  1245.  (close aus1)
  1246.  (princ)
  1247. )
  1248.  
  1249. ;----------------------------------------------------------------------------
  1250.  
  1251. ;Definieren der Listbox-Fuellfunktion bei Indexauswahl
  1252.  
  1253. (defun list_fuell (/ ausl ausl1 schleifel zeilel)
  1254.  (if (/= thema3 nil)
  1255.  (progn
  1256.  
  1257.         (setq ausl (strcat EAITpfd "EAIT_H.TXT") 
  1258.               ausl1 (open ausl "r")
  1259.         )
  1260.         (set_tile "thema" thema1)
  1261.         (setq schleifel T)
  1262.         (start_list "help" 3)
  1263.         (while schleifel
  1264.                 (setq zeilel (read-line ausl1))
  1265.                 (if (= zeilel thema3) 
  1266.                 (progn
  1267.                 (while (/= zeilel ":ende") 
  1268.                         (setq zeilel (read-line ausl1))
  1269.                         (if (/= zeilel ":ende") (add_list zeilel))
  1270.                 )
  1271.                 (setq schleifel nil)
  1272.                 )
  1273.              )
  1274.         )
  1275.         (end_list)
  1276.         (setq thema3 nil
  1277.               thema1 nil
  1278.         )
  1279.        )
  1280.      )
  1281.      (princ)
  1282. )
  1283.  
  1284. ;----------------------------------------------------------------------------
  1285.  
  1286. ;Definieren der Hilfe-Indexfunktion
  1287.  
  1288. (defun helpindex (/ datzeigindex ausi ausi1 schleifei zeilei dialogwerthelp
  1289.                     indexthema themenlist 
  1290.                  )
  1291.  
  1292.  (setq ausi (strcat EAITpfd "EAIT_H.TXT") 
  1293.        ausi1 (open ausi "r")
  1294.        themenlist (list)
  1295.  ) 
  1296.  
  1297.  (setq dat_zeigindex (load_dialog (strcat EAITpfd "EAITem.DCL")))   
  1298.  (if (not (new_dialog "HELPINDEX" dat_zeigindex)) (exit))
  1299.  (setq schleifei T)
  1300.  
  1301.  (start_list "helpindex" 3)
  1302.  (while schleifei
  1303.   (setq zeilei (read-line ausi1))
  1304.   (if (= zeilei "/index_start") 
  1305.   (progn
  1306.    (while (/= zeilei "/index_end") 
  1307.     (setq zeilei (read-line ausi1))
  1308.     (if (and (/= (substr zeilei 1 1) "/") (/= zeilei "/index_end")) 
  1309.      (progn
  1310.       (setq themenlist (cons zeilei themenlist))
  1311.       (add_list zeilei)))
  1312.     )
  1313.    (setq schleifei nil)
  1314.    )
  1315.   )
  1316.  )
  1317.  (end_list)
  1318.  (action_tile "helpindex" "(setq indexthema $value)(indexauswertung indexthema themenlist)")
  1319.  (action_tile "ok" "(done_dialog 0)")
  1320.  (start_dialog)
  1321.  (unload_dialog dat_zeigindex)
  1322.  
  1323.  (close ausi1)
  1324.  (princ)
  1325. )
  1326.  
  1327. ;----------------------------------------------------------------------------
  1328.  
  1329. ;Definieren der Funktion der Indexauswertung 
  1330.  
  1331. (defun indexauswertung (indexthema themenlist / ausix ausix1
  1332.                         schleifeix zeileix thema2)
  1333.  
  1334.  (setq themenlist (reverse themenlist)
  1335.        thema1 (nth (atoi indexthema) themenlist)
  1336.  )
  1337.  (setq ausix (strcat EAITpfd "EAIT_H.TXT") 
  1338.       ausix1 (open ausix "r")
  1339.  )
  1340.  (setq schleifeix T)
  1341.  
  1342.  (while schleifeix
  1343.   (setq zeileix (read-line ausix1))
  1344.   (if (= zeileix "/index_start") 
  1345.   (progn
  1346.    (while (/= zeileix thema1) 
  1347.     (setq zeileix (read-line ausix1))
  1348.     (if (= zeileix thema1) 
  1349.      (progn
  1350.       (setq thema2 (read-line ausix1))
  1351.        )
  1352.       )
  1353.    (setq schleifeix nil)
  1354.    )
  1355.   )
  1356.  )
  1357.  )
  1358.  (setq l1 (strlen thema2)
  1359.        thema3 (substr thema2 2 (- l1 1))
  1360.        thema3 (strcat ":" thema3)
  1361.  )
  1362.  (close ausix1)
  1363.  (princ)
  1364. )
  1365.  
  1366. ;----------------------------------------------------------------------------
  1367.  
  1368.  
  1369. ;************************************************************************
  1370. ;Item - Projektarbeiten Hauer Ende
  1371. ;************************************************************************
  1372.  
  1373. (princ)
  1374.